package com.aizuda.boot.modules.business.filling.service;

import com.aizuda.boot.modules.business.contract.dto.SingleResponse;
import com.aizuda.boot.modules.business.filling.domain.entity.ContractFilingEntity;
import com.aizuda.boot.modules.business.filling.domain.request.PageQuery;
import com.aizuda.boot.modules.business.filling.domain.request.SaveFilingDTO;
import com.aizuda.boot.modules.business.filling.domain.request.UpdateFilingDTO;
import com.aizuda.boot.modules.business.filling.domain.response.FilingShowDTO;
import com.aizuda.boot.modules.business.filling.domain.response.FilingShowListDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;


/**
 * @Author sangyirong
 * @ClassName ContractFilingService
 * @Version 1.0
 * @Date 2025/6/4 16:32
 */
public interface ContractFilingService extends IService<ContractFilingEntity> {

    /**
     * 获取归档列表
     *
     * @param page
     * @return
     */
    IPage<FilingShowListDTO> getFilingList(IPage<FilingShowListDTO> page);

    /**
     * 创建归档
     *
     * @param dto
     * @return
     */
    SingleResponse<Void> createFiling(SaveFilingDTO dto);

    /**
     * 获取归档
     *
     * @param id
     * @return
     */
    SingleResponse<FilingShowDTO> getFiling(Integer id);

    /**
     * 更新归档
     *
     * @param dto
     * @return
     */
    SingleResponse<Void> updateFiling(UpdateFilingDTO dto);

    /**
     * 删除归档
     *
     * @param id
     * @return
     */
    SingleResponse<Void> deleteFiling(Integer id);

    /**
     * 获取归档列表（分页查询）
     *
     * @param pageQuery
     * @return
     */
    SingleResponse<IPage<FilingShowListDTO>> getFilingList(PageQuery pageQuery);
}
